package com.shiroha.video.jellyfin.client.request;

import lombok.Data;

/**
 * 用于封装获取媒体项目请求的查询参数。
 */
@Data
public class ItemQueryParams {
    /**
     * 搜索关键字，用于过滤项目名称或路径。
     */
    private String searchTerm;

    /**
     * 过滤器，用于指定额外的过滤条件（如 "IsNotFolder"）。
     */
    private String filters;

    /**
     * 是否递归搜索子文件夹。
     */
    private boolean recursive;

    /**
     * 包含的项目类型，默认为 "Movie"。
     */
    private String includeItemTypes;

    /**
     * 媒体文件的路径。
     */
    private String path;

    /**
     * 返回结果的起始索引，用于分页
     */
    private Integer startIndex;

    /**
     * 返回的最大记录数，用于分页
     */
    private Integer limit;

    /**
     * 存储位置类型，用于过滤项目（如 "FileSystem"）。
     */
    private String locationTypes;

    /**
     * 指定返回的额外字段（如 "ParentId,Path"）。
     */
    private String fields;

    /**
     * 标签，用于过滤项目。
     */
    private String tags;

    /**
     * 媒体类型，用于过滤项目（如 "Video"）。
     */
    private String mediaTypes;

    /**
     * 父文件夹的 ID，用于在特定文件夹中搜索项目。可选参数。
     */
    private String parentId;

    /**
     * 排序字段，多个字段用管道符（|）分隔（如 "Name|PremiereDate|CommunityRating"）。
     */
    private String sortBy;

    /**
     * 排序顺序（如 "Ascending"）。
     */
    private String sortOrder;
}
